/* TAG 增删操作
 * 应提高复用率
 */


/* 删除标签 */
// 向 TAG 赋予删除键
// 监听删除键
// 发送删除任务


/* 增加标签 */
$(document).on('click', '#tagsadd', function() {
	var r = $("#tagdata").val()
	var t = $(this).attr("data-tid")
	if (安检(r)) 发送(r,t)
})


function 安检(r){
	var q = $('#tag').children('li').length
	if(q > 12){
		提示('标签最多设置12个')
		return false
	}

	if(r==null||r.length==0){
		提示('你明明什么都没有写..')
		return false
	}

	// 检查长度
	if( getStrLeng(r)>24 || getStrLeng(r)<2 ){
		提示('中文字数 1-8 个, 英文2-24个 ')
		return false
	}

	// 特殊符号不可使用 (各种空格与危险字符)
	var a = new Array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "{", "}", "[", "]", "(", ")")
	a.push(":", ";", "'", "|", "\\\\", "<", ">", "?", "/", "<<", ">>", "||", "//")
	a.push(" ", "　", ",", ".")
	a.push("select", "delete", "update", "insert", "create", "drop", "alter", "trancate")
	var s = r.toLowerCase();
	for (var i = 0; i < a.length; i++) {
		if (s.indexOf(a[i]) >= 0) {
			提示('不可使用特殊字符')
			return false
		}
	}

	// 重复检查( 前端检查需要取得所有之并载入数组 )

	// 通过安检即允许关闭模态窗
	$("#tagRe").modal("toggle")
	return true
}







function 发送(r,tid){
	var url = '?tag-add.htm'
	$.xpost(url, {'tid': tid, 'tag': r }, function(code,msg){
		if (code == 1) {
			if ( $("#tag li[data-tag='"+msg+"']").length > 0 ) {
				//alert(tag+'标签已存在')
				return false
			}
			// 先移除结尾的元素, 增加完毕再添加结尾的元素
			$("#tag li:last").remove()
			$("#tag").append('<li data-tag="'+msg+'"><a href="?tag-'+msg+'.htm"><i class="icon-tag"></i>'+r+'</a></li>')
			$("#tag").append('<li><a title="添加标签" data-toggle="modal" data-target="#tagRe"><i class="icon-plus"></i></a></li>')
			$("#tagdata").val("")
		} else {
			alert(msg)
		}	
	})
}

function 提示(r){
	var timestamp = (new Date()).valueOf()
	$("#tagRe form").before('<div class="alert alert-warning" role="alert" id="t'+timestamp+'"><strong>提示!</strong> '+r+'</div>');
	setTimeout(function () { $("#t"+timestamp).hide(1000) }, 4000)
	setTimeout(function () { $("#t"+timestamp).remove() }, 5000)

}


// UTF8字符集实际长度计算
function getStrLeng(str){
	var realLength = 0
	var len = str.length
	var charCode = -1
	for(var i = 0; i < len; i++){
		charCode = str.charCodeAt(i)
		if (charCode >= 0 && charCode <= 128) {
			realLength += 1
		}else{
			// 如果是中文则长度加3
			realLength += 3
		}
	}
	return realLength;
}